package com.sailfish.springbootdemo.service.db2;

import com.sailfish.springbootdemo.pojo.Result;
import com.sailfish.springbootdemo.pojo.db2.*;

import java.util.AbstractMap;
import java.util.List;
import java.util.Map;

public interface PcbMaterialService {

//    List<PcbMaterial> getAll(PcbMaterial pcbMaterial);
//
//    Result insert(PcbMaterial param);
//
//    Result delete(Integer id);
//
//    Result update(PcbMaterial param);

    List<PcbMaterialParam> getAllPcbMaterialParam(PcbMaterialParam param);

    Result insertOrUpdatePcbMaterialParam(PcbMaterialParam param);

    Result deletePcbMaterialParam(Integer id);

    Result checkPcbMaterialParamHasData(Integer id);

    List<MaterialInfo> getAllPcbMaterialLibrary(List<PcbMaterialLibrary> params);

    Result insertOrUpdatePcbMaterialLibrary(String data);

    Result deletePcbMaterialLibrary(String row_key);

    Result updatePcbMaterialFactoryStatus(Integer pcbFactoryMaterialId, String approver, Integer materialStatus, String remark, Integer openStatus);

    Result getPcbMaterialFileById(Integer id);

    Result insertOrUpdatePcbMaterialFactory(String data);

    Result insertOrUpdatePcbMaterialLibraryAndFactory(String data);

    List<PcbMaterialLibraryAndFactory> getPcbMaterialLibraryAndFactory(String rowKey);

    Result deletePcbMaterialLibraryAndFactory(Integer id);

    List<PcbMaterialFactory> getPcbMaterialAndFactoryData(Integer factoryId, String rowKey, Integer materialStatus, Integer userId);

    List<PcbMaterialLibrary> getPcbMaterialData(List<PcbSonFactoryInfo> allFactorys);

    List<MaterialVM> getPcbMaterialDataByFactory(PcbSonFactoryInfo pcbSonFactoryInfo);

    Result addFile(String data);

    List<CapacityMatch> getCapacityMatch(List<PcbSonFactoryInfo> sonFactoryInfoList, List<PcbMaterialLibrary> rquirePcbMaterialLibraryList, Integer rquireOpenStatus);

    List<PcbMaterialLibrary> getMaterialList();
    List<String> getElectBehaveList();
    List<PcbMaterialLibrary> getAllBySearch(String searchK, String searchV);
    PcbMaterialParam getByParamName(String paramName);

    PcbMaterialLibrary getAllByRowKeyAndParamKey(String paramKey, String rowKey);

    /*导出板材能力开放数据*/
    Result outputPcbMaterialData();

    Result outputPcbMaterialLibrary();

    Result outputPcbBoardMaterialAbility();
}
